package com.zkthink.ceres.pay.wechat.v3.entity.result.applyments;

import com.alibaba.fastjson.annotation.JSONField;
import com.zkthink.ceres.pay.wechat.v3.entity.result.BasePayResult;
import lombok.*;
import lombok.experimental.Accessors;

/**
 * <p>
 *   合并下单结果
 * </p>
 *
 * @author vivi.huang
 * @since 2020/5/17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Builder(builderMethodName = "newBuilder")
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class QuerySettlementResult extends BasePayResult {

    private static final long serialVersionUID = 1960459269579244358L;


    /**
     * 账户类型	account_type	enum	是
     * 根据特约商户号的主体类型，可选择的账户类型如下：
     * 1、小微主体：经营者个人银行卡
     * 2、个体工商户主体：经营者个人银行卡/ 对公银行账户
     * 3、企业主体：对公银行账户
     * 4、党政、机关及事业单位主体：对公银行账户
     * 5、其他组织主体：对公银行账户
     * 枚举值：
     * ACCOUNT_TYPE_BUSINESS：对公银行账户
     * ACCOUNT_TYPE_PRIVATE：经营者个人银行卡
     * 示例值：ACCOUNT_TYPE_BUSINESS
     */
    @JSONField(name = "account_type")
    private String accountType;

    /**
     * 开户银行	account_bank	string(128)	是
     * 请填写开户银行名称，详细参见开户银行对照表。
     * 示例值：工商银行
     */
    @JSONField(name = "account_bank")
    private String accountBank;


    /**
     * 开户银行全称（含支行）	bank_name	string(128)	否
     * 若开户银行为“其他银行”，则需二选一填写“开户银行全称（含支行）”或“开户银行联行号”。
     * 填写银行全称，如"深圳农村商业银行XXX支行" ，详细参见开户银行全称（含支行）对照表。
     * 示例值：施秉县农村信用合作联社城关信用社
     */
    @JSONField(name = "bank_name")
    private String bankName;

    /**
     * 开户银行联行号	bank_branch_id	string(128)	否
     * 若开户银行为“其他银行”，则需二选一填写“开户银行全称（含支行）”或“开户银行联行号”。
     * 填写银行联行号，详细参见开户银行全称（含支行）对照表。
     * 示例值：402713354941
     */
    @JSONField(name = "bank_branch_id")
    private String bankBranchId;

    /**
     * 银行账号	account_number	string(128)	是	1、数字，长度遵循系统支持的对公/对私卡号长度要求
     * 2、该字段需进行加密处理，加密方法详见敏感信息加密说明。(提醒：必须在HTTP头中上送Wechatpay-Serial)
     */
    @JSONField(name = "account_number")
    private String accountNumber;

    /**
     * 汇款验证结果	verify_result	enum	是	返回特约商户的结算账户-汇款验证结果。
     * VERIFYING：系统汇款验证中，商户可发起提现尝试。
     * VERIFY_SUCCESS：系统成功汇款，该账户可正常发起提现。
     * VERIFY_FAIL：系统汇款失败，该账户无法发起提现，请检查修改。
     * 示例值：VERIFY_SUCCESS
     */
    @JSONField(name = "verify_result")
    private String verifyResult;


}